from devicetest.aw.OpenHarmony import CommonOH
from devicetest.core.test_case import TestCase, Step

from aw.common import common_setup, common_teardown
from aw.pom import Contact, Keyboard


class PreTest_RK3568_Communication_Contact_0200(TestCase, Contact):
    # 预置条件：
    # 烧写目标版本后，正常进入桌面
    # 测试步骤：
    # 1.点击“新建联系人”或“+”
    # 2.输入姓名、公司、手机(电话号码)、私人(电子邮件)、备注、添加更多项等信息
    # 3.点击右上角√标识保存
    # 预期结果：
    # 1.进入联系人编辑页面
    # 2.点击唤醒键盘，可正常输入各项信息
    # 3.保存成功，在联系人界面按首字母排序显示

    def __init__(self, controllers):
        self.TAG = self.__class__.__name__
        TestCase.__init__(self, self.TAG, controllers)

    def setup(self):
        common_setup(self.Phone1)

    def process(self):
        Step('步骤1：进入联系人应用, 点击“新建联系人”或“+”')
        CommonOH.startAbility(self.Phone1, self.ability_name, self.bundle_name)
        CommonOH.wait(self.Phone1, 2)
        CommonOH.touchByText(self.Phone1, '联系人')
        # CommonOH.click(self.Phone1, **self.add_contact_btn)
        try:
            CommonOH.touchByText(self.Phone1, '新建联系人')
        except:
            CommonOH.click(self.Phone1, **self.add_contact_btn)
        Step('预期结果1.进入联系人编辑页面')
        # 控件检查
        CommonOH.checkIfTypeExist(self.Phone1, 'TextInput')
        Step('步骤2.输入姓名、公司、手机(电话号码)、私人(电子邮件)、备注、添加更多项等信息')
        # 姓名
        CommonOH.touchByType(self.Phone1, 'TextInput', index=0)
        Step('预期结果2.点击唤醒键盘，可正常输入各项信息')
        CommonOH.checkIfTextExist(self.Phone1, 'space')
        CommonOH.click(self.Phone1, **Keyboard.key_a)
        CommonOH.click(self.Phone1, **Keyboard.close)
        # 公司
        CommonOH.touchByType(self.Phone1, 'TextInput', index=1)
        CommonOH.checkIfTextExist(self.Phone1, 'space')
        CommonOH.click(self.Phone1, **Keyboard.key_c)
        CommonOH.click(self.Phone1, **Keyboard.close)
        # 号码
        CommonOH.touchByType(self.Phone1, 'TextInput', index=3)
        CommonOH.checkIfTextExist(self.Phone1, 'space')
        CommonOH.click(self.Phone1, **Keyboard.key_0)
        CommonOH.click(self.Phone1, **Keyboard.key_1)
        CommonOH.click(self.Phone1, **Keyboard.key_2)
        CommonOH.click(self.Phone1, **Keyboard.close)
        Step('步骤3.点击右上角√标识保存')
        CommonOH.touchByKey(self.Phone1, 'AddContact_OK')
        Step('预期结果3.保存成功，在联系人界面按首字母排序显示')
        CommonOH.goBack(self.Phone1)
        CommonOH.checkIfTextExist(self.Phone1, self.test_name)

    def teardown(self):
        common_teardown(self.Phone1, self.bundle_name)
